💡 前11天之所以會從程式設計開始,是因為閱讀<>這本書時遇到不懂的地方。在看完程式設計的OCW後,就可以繼續讀這本經典了。
本書作者認為讓開發速度變快的唯一方法是「隨時隨地確保程式碼整齊潔淨」。
作者彙整了他請教的工程師所提出的定義,並把本書界定為整潔程式碼之物件學派,將他對Clean Code的定義,包含怎樣才算是整潔的變數名稱、函式、類別,寫成這本書的內容。
(一) C++發明人Bjarne Stroustrup的定義
--> 顯現了Clean Code對於細節的在意
(二) Eclipse策略教父Dave Thomos的定義
--> 顯現了Clean Code對於可讀性的在意
(三) Ron Jeffries
--> 顯現了Clean Code對於可讀性的在意
作者表示,在本書他會使用到他另一本探討物件導向設計原則的著作PPP中所提到的原則,包含單一職責原則(SRP)、開放封閉原則(OCP)、相依性反向原則(DIP)。
※註:在單元測試的藝術第三章提到接縫概念時(p.65)有提到OCP原則,類別的功能開放擴充彈性,但不允許直接修改該功能內實作的程式碼。
Ans: Race Conditions 出現的條件包含(1)平行處理、(2)對同一個資源同時進行存取操作,最終可能導致結果是不正確的。
※參考:後端工程師面試考什麼、周志遠教授作業系統OCW
Ans: 相依性反向原則指的是原始碼的依賴關係應只涉及抽象而不涉及具體。抽象通常指的是介面(Interface)及抽象類別(Abstract Class),也就是如何讓系統依賴性降至最低。
Ans: Eclipse是一套開放原始碼(Open Source)的整合開發環境(IDE,Integrated Development Environment),可用來編輯、編譯、執行和除錯特定語言的程式。
在了解基本定義後,下一章要談的是有意義的命名。